package com.lu.statistics.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lu.statistics.entity.SysAppUser;
import com.lu.statistics.exception.AccountDisabledException;
import com.lu.statistics.exception.UnknownAccountException;

import java.util.Set;

public interface AppUserService extends IService<SysAppUser> {
    /**
     * 创建用户
     *
     * @param user
     */
    void createUser(SysAppUser user);

    /**
     * 保存或修改用户信息
     *
     * @param user
     */
    void updateUser(SysAppUser user);

    /**
     * 按用户电话修改密码
     * @param user
     */
    void updatePasswordByPhone(SysAppUser user);

    /**
     * 登录-查询用户信息
     *
     * @param userName
     * @param password
     * @return
     */
    SysAppUser queryUserByUserNameAndPassword(String userName, String password);

    /**
     * 手机登录-查询用户信息
     *
     * @param phone
     * @return
     */
    SysAppUser queryUserByPhone(String phone) throws AccountDisabledException, UnknownAccountException;

    /**
     * 按用户电话统计用户数量
     *
     * @param phone
     * @return
     */
    int queryUserCountByPhone(String phone);

    /**
     * 查询用户信息
     *
     * @param id
     * @return
     */
    SysAppUser queryUserById(int id);

    /**
     * 修改头像信息
     *
     * @param user
     * @return
     */
    SysAppUser updateAvatar(SysAppUser user);

    /**
     * 获取当前登录用户权限
     *
     * @param userId
     * @return
     */
    Set<String> queryUserPermCodeListByUser(Integer userId);
}
